import  {commentImgUrl,getOrder} from '../../../api/api.js';
import {deepClone,formatTime} from '../../utils/util.js';
import {sendMsg} from '../../utils/chat.js';

Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },
  /**
   * 组件的初始数据
   */
  data: {

  },

  /**
   * 组件的方法列表
   */
  methods: {

        

      sendOrder(){


          let page = getCurrentPages()[getCurrentPages().length-1];
          // 关闭发送菜单
          page.setData({
            showSendMenu:false
          })
            
          //获取到页面，然后使用页面对象获取到页面的组件对象
            let orderList = page.selectComponent('#orderList');
            orderList.setData({
                show:true
            })
         },


          sendVideo(){

            // 关闭菜单
            let page = getCurrentPages()[getCurrentPages().length-1];
            page.setData({
               showSendMenu:false
            })




            var that=this;
            // var session_key=wx.getStorageSync('session_key');
            wx.chooseVideo({
                maxDuration:10,//10s
                success:function(res1){
                    // app.startOperating("上传中")
                    // 这个就是最终拍摄视频的临时路径了
                    var tempFilePath=res1.tempFilePath;
                    console.log(tempFilePath,"拍摄视频=========");

                    //给聊天记录添加一个视频 
                    that.addVideo(tempFilePath);
                    that.uploadVideo(tempFilePath)

                 
               
               
                  },
                  fail:function(){
                      console.error("获取本地视频时出错");
                  }
            })
          },
          
          /**
           *  1 封装一条消息
           *  2 把消息放到父组件的histories 里面
           *  3 当前组件里面调用发送消息的方法。
           * 
           * **/ 
        

      






        // 把视频添加到页面上
        addVideo(video){
          
          let date = new Date();
          date =formatTime(date);
          //这样就和后端传递过来的事件一样长了。

          let item = {
            chatTime:date,
            initiator:"u",
          }

          let content = {
            type:"video",
            progress:true,
            msg:video,
            
          }

          item.content = JSON.stringify(content);
          //获取当前页的对象
          let page = getCurrentPages()[getCurrentPages().length-1];
          //把page 当this用就完了。
          let histories =  page.data.histories;
          histories.push(item);
          page.setData({
            histories,
          })
          // //设置滚动到底部
          page.setToIndex()


          // ------------------------------------------------------------------

        },
         
        // 把视频上传到服务器
        uploadVideo(video){
          console.log("开始上传视频======")
          let that = this;
          let uploader = wx.uploadFile({
            url:commentImgUrl,
            filePath:video,
            name:'file', 
            formData:{
              'user':'test'
            },
            success (res){
              console.log(res,"视频上传成功");
              let result = JSON.parse(res.data);
              if(result.code == 200){
                  //发送
                  that.toSendVideo(result.data);
                  // wx.showToast({
                  //   title: '视频上传成功',
                  // })
                  
              }else{
                  wx.showToast({
                    title: '服务器错误',
                    icon:"none"
                  })
              }
              //do something
            }
          })



          uploader.onProgressUpdate((res) => {
            let page = getCurrentPages()[getCurrentPages().length-1];
            // 修改播放进度
            // page.setData({
            //    progress:res.progress
            // })

            // 修改最后一个视频的progress 为false
            // let histories = page.data.histories;
            // for(let i = histories.length-1;i<0;i--){
            //     let item = histories[i];
                
            
            // }
            

            console.log('上传进度', res.progress)
            console.log('已经上传的数据长度', res.totalBytesSent)
            console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
          })
     
        },


        // 发送图片
        sendImgW(){
            console.log("发送图片==============")
            //获取当前页面
            let page = getCurrentPages()[getCurrentPages().length-1];
            //调用当前页面的方法
            // page.toSend('img',);
            page.sendPic();

            //关闭菜单
            page.setData({
               showSendMenu:false
            })
        },


        
  toSendVideo(videoPath){
    let that = getCurrentPages()[getCurrentPages().length-1];
    if(that.data.selService.id){
        
    }else{
        wx.showToast({
          title:'没有客服哦!',
          icon:"none"
        })
        return;
    }
    // 获取选中的客服
    let item = that.data.selService;
    // 获取本地存储的用户信息
    let userInfo = wx.getStorageSync('Yuserinfo').userInfo;
  let data = {
    recipientId:item.id,//客服id
    uName:userInfo.nickName,//我的用户名
    headImage:userInfo.avatarUrl,//我的头像
    merchantId:that.data.merchantId//商家id
  }
 
     //发送图片 
    let  message = {
        type:"video",
        msg:videoPath
      }

  message = JSON.stringify(message);
  data.message = message;
  
  //根据数组索引判断是不是主账号。
  if(item.index == 0){
     data.type = "merchant"
  }else{
     data.type = "subAccount"
  }

  console.log(data);
   
  sendMsg(data).then(res=>{
      console.log(res,"发送消息的回调函数");
      // 发送成功之后去渲染历史记录
  })
},




  },



  lifetimes: {
    created(){
      console.log("created在组件实例刚刚被创建时执行") 
      // let page = getCurrentPages()[getCurrentPages().length-1];
      // let data = {
      //     openId:wx.getStorageSync('loginInfo').openid,
      //     merchantId:page.data.merchantId 
      // }
      // getOrder(data).then(res=>{
      //     console.log("获取用户的订单",res)
      // })



    },
    attached() {
      console.log("attached在组件实例进入页面节点树时执行",this.data.flag);
     
    },
    ready() {
      console.log("ready在组件在视图层布局完成后执行")
    },
    moved() {
      console.log("moved在组件实例被移动到节点树另一个位置时执行")
    },
    detached() {
      console.log("detached在组件实例被从页面节点树移除时执行")
    },
    error() {
      console.log("error每当组件方法抛出错误时执行")
    }
  }






})
